gsk: Don't autoinclude backend-specific headers
authorMatthias Clasen <mclasen@redhat.com>
Sat, 25 Apr 2020 01:38:52 +0000 (21:38 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 25 Apr 2020 01:40:30 +0000 (21:40 -0400)
Don't install headers for code that we don't build.
And don't include those headers in gsk.h.

Just as we do in gdk, require applications to include
the backend-specific headers they need explicitly.

Update the one affected demo, gtk4-node-editor.

demos/node-editor/node-editor-window.c
gsk/gsk.h
gsk/meson.build

index b9b28afd817815a43b2835b5c8386d90a22e0a77..7bda0679d4bf8297b4b14708ace2d35c7fcfe586 100644 (file)
 #include "gtkrendererpaintableprivate.h"
 
 #include "gsk/gskrendernodeparserprivate.h"
+#include "gsk/gl/gskglrenderer.h"
+#ifdef GDK_WINDOWING_BROADWAY
+#include "gsk/broadway/gskbroadwayrenderer.h"
+#endif
+#ifdef GDK_RENDERING_VULKAN
+#include "gsk/vulkan/gskvulkanrenderer.h"
+#endif
 
 #ifndef NODE_EDITOR_SOURCE_DIR
 #define NODE_EDITOR_SOURCE_DIR "." /* Fallback */
index b1ae83794685707cf650d8eb1e7ae6491db4b1ee..523b24c81ad43b70c69ec15ea04a5c0c52527890 100644 (file)
--- a/gsk/gsk.h
+++ b/gsk/gsk.h
@@ -27,9 +27,6 @@
 #include <gsk/gsktransform.h>
 
 #include <gsk/gskcairorenderer.h>
-#include <gsk/gl/gskglrenderer.h>
-#include <gsk/broadway/gskbroadwayrenderer.h>
-#include <gsk/vulkan/gskvulkanrenderer.h>
 
 #include <gsk/gsktypes.h>
 #include <gsk/gskenumtypes.h>
index 8aeae9e7e88becbc2b0839d5d5f558815e0a4ed9..9cc22359cb3b4b2de0fea221c1343f93c9e82535 100644 (file)
@@ -66,17 +66,21 @@ gsk_public_gl_headers = files([
 install_headers(gsk_public_gl_headers, subdir: 'gtk-4.0/gsk/gl')
 gsk_public_headers += gsk_public_gl_headers
 
-gsk_public_broadway_headers = files([
-  'broadway/gskbroadwayrenderer.h'
-])
-install_headers(gsk_public_broadway_headers, subdir: 'gtk-4.0/gsk/broadway')
-gsk_public_headers += gsk_public_broadway_headers
+if get_variable('broadway_enabled')
+  gsk_public_broadway_headers = files([
+    'broadway/gskbroadwayrenderer.h'
+  ])
+  install_headers(gsk_public_broadway_headers, subdir: 'gtk-4.0/gsk/broadway')
+  gsk_public_headers += gsk_public_broadway_headers
+endif
 
-gsk_public_vulkan_headers = files([
-  'vulkan/gskvulkanrenderer.h'
-])
-install_headers(gsk_public_vulkan_headers, subdir: 'gtk-4.0/gsk/vulkan')
-gsk_public_headers += gsk_public_vulkan_headers
+if have_vulkan
+  gsk_public_vulkan_headers = files([
+    'vulkan/gskvulkanrenderer.h'
+  ])
+  install_headers(gsk_public_vulkan_headers, subdir: 'gtk-4.0/gsk/vulkan')
+  gsk_public_headers += gsk_public_vulkan_headers
+endif
 
 gsk_private_vulkan_shaders = []
 # This is an odd split because we use configure_file() below to workaround